This invention relates to computer animation.
Computer animation can generally be thought of as a sequence of frames, each including data describing the visual content of the frame. Running a frame sequence outputs individual frames, and the changing data in the sequentially output frames convey the temporal changes in the animation.
A character is an animated entity in the animation and is generally represented by a geometric model defined in a format used in an animation platform such as the PowerAnimator.TM.platform developed by Silicon Graphics, Inc. When such a character appears in an animation frame sequence, the data for each of those frames includes data describing the position of the character's geometric model. When the character moves in that frame sequence, the data of the corresponding frames reflect the changing position of the character.
Typically, a character performs several basic motions repeatedly, some of which can be animated with motion "cycles". A motion cycle includes data for a character in a sequence of frames, moving it through a cyclic motion such that repeating the cycle frame sequence produces the effect of continuous motion. For example, a run cycle of a particular character, such as that shown in FIG. 1, may include data for a first frame, positioning the character in a first position, followed by a sequence of frames moving the character through a left step, and a right step, and ending with a frame positioning the character such that it can return to the position of the first frame of the cycle. Repeating the cycle produces the effect of the character's continuous running motion. FIG. 3 shows another illustration of a cycle, this one showing the character performing a jumping motion.
Once created and saved, data for frames of a character's motion cycle can be used each time the character performs that motion, avoiding the need to regenerate the data.
A "transition" includes data describing the position of the character in a sequence of frames as it moves from one cycle to another cycle. FIG. 2 shows a frame sequence illustrating a transition from the run cycle of FIG. 1 to the jump cycle of FIG. 3. FIG. 4 shows a frame sequence illustrating a transition from the jump cycle of FIG. 3 to the run cycle of FIG. 1.
An alternative approach for transitions uses a neutral position through which a character moves as it transitions from a first cycle to a second cycle. Thus, the transition from the first cycle to the second cycle can be broken down into two component transition: a first transition moves the character from the first cycle to the neutral position, and a second transition moves the character from the neutral position to the second cycle. In the examples illustrated in FIGS. 1-4, for example, the neutral position may be the standing position illustrated in FIGS. 2c and 4b. Thus, the Run.fwdarw.Jump transition could be broken down into a Run.fwdarw.Neutral transition, including the character positions illustrated in frames 2a and 2b, and a Neutral.fwdarw.Jump transition, including the character position illustrated in frame 2d. Similarly, the Jump.fwdarw.Run transition could be broken down into a Jump.fwdarw.Neutral transition including the character position illustrated in frame 4a, and a Neutral.fwdarw.Run transition including the character positions illustrated in frames 4c and 4d.
Using approaches such as these, a transition moves a character sequentially from its position in the last frame of a first cycle to its position in the first frame of a second cycle. Thus, when a character transitions from the first cycle to the second cycle, it must move through the first cycle to the position of its last frame before starting the transition, and must begin at the position of the first frame of the second cycle. Further, because a transition depends on knowing the last frame of the first cycle and the first frame of the second cycle, if either of these frames change, the transition frame sequence may need to be updated.